import pandas as pd
import argparse
import os

def xlsx_to_markdown(input_file, output_file=None, sheet_name=0):
    # Читаем Excel файл
    df = pd.read_excel(input_file, sheet_name=sheet_name, dtype=str)

    # Заменяем NaN на пустую строку
    df.fillna("", inplace=True)

    # Генерируем Markdown таблицу
    markdown_table = df.to_markdown(index=False)

    # Если указан файл для сохранения — сохраняем
    if output_file:
        with open(output_file, "w", encoding="utf-8") as f:
            f.write(markdown_table)
        print(f"Markdown таблица сохранена в {output_file}")
    else:
        print(markdown_table)


def main():
    parser = argparse.ArgumentParser(description="Конвертер XLSX → Markdown")
    parser.add_argument("input_file", help="Путь к входному .xlsx файлу")
    parser.add_argument("-o", "--output", help="Путь для сохранения .md файла")
    parser.add_argument("-s", "--sheet", default=0, help="Имя или номер листа Excel (по умолчанию 0)")

    args = parser.parse_args()

    # Если выходной файл не задан, используем тот же путь с расширением .md
    output_file = args.output
    if not output_file:
        base_name = os.path.splitext(args.input_file)[0]
        output_file = base_name + ".md"

    xlsx_to_markdown(args.input_file, output_file, args.sheet)


if __name__ == "__main__":
    main()
